<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<title>README</title><link href='https://fonts.loli.net/css?family=PT+Serif:400,400italic,700,700italic&subset=latin,cyrillic-ext,cyrillic,latin-ext' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; word-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 40px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
  .CodeMirror-sizer { margin-left: 0px !important; }
  .CodeMirror-gutters { display: none !important; }
}
#write li > figure:first-child { margin-top: -20px; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; }
button, input, select, textarea { color: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 2; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px !important; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-diagram-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; }
  #write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  html.blink-to-pdf { font-size: 13px; }
  .typora-export #write { padding-left: 32px; padding-right: 32px; padding-bottom: 0px; break-after: avoid; }
  .typora-export #write::after { height: 0px; }
  @page { margin: 20mm 0px; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
[contenteditable="true"]:active, [contenteditable="true"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.md-inline-math .MathJax_SVG .noError { display: none !important; }
.html-for-mac .inline-math-svg .MathJax_SVG { vertical-align: 0.2px; }
.md-math-block .MathJax_SVG_Display { text-align: center; margin: 0px; position: relative; text-indent: 0px; max-width: none; max-height: none; min-height: 0px; min-width: 100%; width: auto; overflow-y: hidden; display: block !important; }
.MathJax_SVG_Display, .md-inline-math .MathJax_SVG_Display { width: auto; margin: inherit; display: inline-block !important; }
.MathJax_SVG .MJX-monospace { font-family: var(--monospace); }
.MathJax_SVG .MJX-sans-serif { font-family: sans-serif; }
.MathJax_SVG { display: inline; font-style: normal; font-weight: 400; line-height: normal; zoom: 90%; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; }
.MathJax_SVG * { transition: none; }
.MathJax_SVG_Display svg { vertical-align: middle !important; margin-bottom: 0px !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="mermaid"] svg, [lang="flow"] svg { max-width: 100%; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }


:root { --active-file-bg-color: rgba(32, 43, 51, 0.63); --active-file-text-color: white; --bg-color: #f3f2ee; --text-color: #1f0909; --control-text-color: #444; --rawblock-edit-panel-bd: #e5e5e5; --select-text-bg-color: rgba(32, 43, 51, 0.63); --select-text-font-color: white; }
pre { --select-text-bg-color: #36284e; --select-text-font-color: #fff; }
html { font-size: 16px; }
html, body { background-color: rgb(243, 242, 238); font-family: "PT Serif", "Times New Roman", Times, serif; color: rgb(31, 9, 9); line-height: 1.5em; }
#write { max-width: 40em; }
ol li { list-style-type: decimal; list-style-position: outside; }
ul li { list-style-type: disc; list-style-position: outside; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote::before, blockquote::after, q::before, q::after { content: none; }
table { border-collapse: collapse; border-spacing: 0px; }
h1, h2, h3, h4, h5, h6 { font-weight: bold; }
h1 { font-size: 1.875em; line-height: 1.6em; margin-top: 2em; }
h2, h3 { font-size: 1.3125em; line-height: 1.15; margin-top: 2.28571em; margin-bottom: 1.15em; }
h3 { font-weight: normal; }
h4 { font-size: 1.125em; margin-top: 2.67em; }
h5, h6 { font-size: 1em; }
h1 { border-bottom: 1px solid; margin-bottom: 1.875em; padding-bottom: 0.8125em; }
a { text-decoration: none; color: rgb(6, 85, 136); }
a:hover, a:active { text-decoration: underline; }
p, blockquote, .md-fences { margin-bottom: 1.5em; }
h1, h2, h3, h4, h5, h6 { margin-bottom: 1.5em; }
blockquote { font-style: italic; border-left: 5px solid; margin-left: 2em; padding-left: 1em; }
ul, ol { margin: 0px 0px 1.5em 1.5em; }
.md-meta, .md-before, .md-after { color: rgb(153, 153, 153); }
table { margin-bottom: 1.5em; font-size: 1em; }
thead th, tfoot th { padding: 0.25em 0.25em 0.25em 0.4em; text-transform: uppercase; }
th { text-align: left; }
td { vertical-align: top; padding: 0.25em 0.25em 0.25em 0.4em; }
code, .md-fences { background-color: rgb(218, 218, 218); }
code { padding-left: 2px; padding-right: 2px; }
.md-fences { margin-left: 2em; margin-bottom: 3em; padding-left: 1ch; padding-right: 1ch; }
pre, code, tt { font-size: 0.875em; line-height: 1.71429em; }
h1 { line-height: 1.3em; font-weight: normal; margin-bottom: 0.5em; }
p + ul, p + ol { margin-top: 0.5em; }
h3 + ul, h4 + ul, h5 + ul, h6 + ul, h3 + ol, h4 + ol, h5 + ol, h6 + ol { margin-top: 0.5em; }
li > ul, li > ol { margin-top: inherit; margin-bottom: 0px; }
li ol > li { list-style-type: lower-alpha; }
li li ol > li { list-style-type: lower-roman; }
h2, h3 { margin-bottom: 0.75em; }
hr { border-top: none; border-right: none; border-bottom: 1px solid; border-left: none; }
h1 { border-color: rgb(197, 197, 197); }
blockquote { border-color: rgb(186, 186, 186); color: rgb(101, 101, 101); }
blockquote ul, blockquote ol { margin-left: 0px; }
.ty-table-edit { background-color: transparent; }
thead { background-color: rgb(218, 218, 218); }
tr:nth-child(2n) { background: rgb(232, 231, 231); }
hr { border-color: rgb(197, 197, 197); }
.task-list { padding-left: 1rem; }
.md-task-list-item { padding-left: 1.5rem; list-style-type: none; }
.md-task-list-item > input::before { content: "√"; display: inline-block; width: 1.25rem; height: 1.6rem; vertical-align: middle; text-align: center; color: rgb(221, 221, 221); background-color: rgb(243, 242, 238); }
.md-task-list-item > input:checked::before, .md-task-list-item > input[checked]::before { color: inherit; }
#write pre.md-meta-block { min-height: 1.875rem; color: rgb(85, 85, 85); border: 0px; background: transparent; margin-left: 1em; margin-top: 1em; }
.md-image > .md-meta { color: rgb(155, 81, 70); }
.md-image > .md-meta { font-family: Menlo, "Ubuntu Mono", Consolas, "Courier New", "Microsoft Yahei", "Hiragino Sans GB", "WenQuanYi Micro Hei", serif; }
#write > h3.md-focus::before { left: -1.5rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153); }
#write > h4.md-focus::before { left: -1.5rem; top: 0.25rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153); }
#write > h5.md-focus::before { left: -1.5rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153); }
#write > h6.md-focus::before { left: -1.5rem; top: 0.3125rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153); }
.md-toc:focus .md-toc-content { margin-top: 19px; }
.md-toc-content:empty::before { color: rgb(6, 85, 136); }
.md-toc-item { color: rgb(6, 85, 136); }
#write div.md-toc-tooltip { background-color: rgb(243, 242, 238); }
#typora-sidebar { background-color: rgb(243, 242, 238); box-shadow: rgba(0, 0, 0, 0.376) 0px 6px 12px; }
.pin-outline #typora-sidebar { background: inherit; box-shadow: none; border-right: 1px dashed; }
.pin-outline #typora-sidebar:hover .outline-title-wrapper { border-left: 1px dashed; }
.outline-item:hover { background-color: rgb(218, 218, 218); border-left: 28px solid rgb(218, 218, 218); border-right: 18px solid rgb(218, 218, 218); }
.typora-node .outline-item:hover { border-right: 28px solid rgb(218, 218, 218); }
.outline-expander::before { content: ""; font-family: FontAwesome; font-size: 14px; top: 1px; }
.outline-expander:hover::before, .outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.modal-content { background-color: rgb(243, 242, 238); }
.auto-suggest-container ul li { list-style-type: none; }
.megamenu-menu, #top-titlebar, #top-titlebar *, .megamenu-content { background: rgb(243, 242, 238); color: rgb(31, 9, 9); }
.megamenu-menu-header { border-bottom: 1px dashed rgb(32, 43, 51); }
.megamenu-menu { box-shadow: none; border-right: 1px dashed; }
header, .context-menu, .megamenu-content, footer { font-family: "PT Serif", "Times New Roman", Times, serif; color: rgb(31, 9, 9); }
#megamenu-back-btn { color: rgb(31, 9, 9); border-color: rgb(31, 9, 9); }
.megamenu-menu-header #megamenu-menu-header-title::before { color: rgb(31, 9, 9); }
.megamenu-menu-list li a:hover, .megamenu-menu-list li a.active { color: inherit; background-color: rgb(232, 231, 223); }
.long-btn:hover { background-color: rgb(232, 231, 223); }
#recent-file-panel tbody tr:nth-child(2n-1) { background-color: transparent !important; }
.megamenu-menu-panel tbody tr:hover td:nth-child(2) { color: inherit; }
.megamenu-menu-panel .btn { background-color: rgb(210, 209, 209); }
.btn-default { background-color: transparent; }
.typora-sourceview-on #toggle-sourceview-btn, .ty-show-word-count #footer-word-count { background: rgb(199, 197, 197); }
#typora-quick-open { background-color: inherit; }
.md-diagram-panel { margin-top: 8px; }
.file-list-item-file-name { font-weight: initial; }
.file-list-item-summary { opacity: 1; }
.file-list-item { color: rgb(119, 119, 119); }
.file-list-item.active { background-color: inherit; color: black; }
.ty-side-sort-btn.active { background-color: inherit; }
.file-list-item.active .file-list-item-file-name { font-weight: bold; }
.file-list-item { opacity: 1 !important; }
.file-library-node.active > .file-node-background { background-color: var(--active-file-bg-color); }
.file-tree-node.active > .file-node-content { color: var(--active-file-text-color); }
.md-task-list-item > input { margin-left: -1.6em; margin-top: calc(1rem - 12px); }
input { border: 1px solid rgb(170, 170, 170); }
.megamenu-menu-header #megamenu-menu-header-title, .megamenu-menu-header:hover, .megamenu-menu-header:focus { color: inherit; }
.dropdown-menu .divider { border-color: rgb(229, 229, 229); }
.os-windows-7 strong, .os-windows-7 strong { font-weight: 760; }





 .typora-export li, .typora-export p, .typora-export,  .footnote-line {white-space: normal;} 
</style>
</head>
<body class='typora-export os-windows' >
<div  id='write'  class = 'is-node'><h1><a name='header-n0' class='md-header-anchor '></a>计组考前懵逼释疑     <em><u>by Curled</u></em></h1><div class='md-toc' mdtype='toc'><p class="md-toc-content"><span class="md-toc-item md-toc-h1" data-ref="n0"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n0">计组考前懵逼释疑     <em><u>by Curled</u></em></a></span><span class="md-toc-item md-toc-h2" data-ref="n8"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n8">第一章 绪论</a></span><span class="md-toc-item md-toc-h4" data-ref="n10"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n10">哈佛结构和冯诺依曼结构有什么主要的不同？</a></span><span class="md-toc-item md-toc-h4" data-ref="n16"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n16">计算机的总线有哪些分类</a></span><span class="md-toc-item md-toc-h4" data-ref="n24"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n24">什么是计算机的位？什么是字长？</a></span><span class="md-toc-item md-toc-h4" data-ref="n29"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n29">基数，基本符号，位权。</a></span><span class="md-toc-item md-toc-h2" data-ref="n33"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n33">第二章 数据的表示</a></span><span class="md-toc-item md-toc-h4" data-ref="n35"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n35">IEEE754浮点数表示中，指数偏移值是真值+127，而不是128，表示的范围为1~254.</a></span><span class="md-toc-item md-toc-h4" data-ref="n41"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n41">什么是规约化浮点数，什么是非规约化浮点数？规约化浮点数的表示范围与精度取决什么？</a></span><span class="md-toc-item md-toc-h2" data-ref="n48"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n48">第三章 指令系统</a></span><span class="md-toc-item md-toc-h4" data-ref="n50"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n50">什么是机器字长？什么是指令字长？各有什么关系？</a></span><span class="md-toc-item md-toc-h4" data-ref="n55"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n55">什么是单双字长指令？什么是单双操作数指令？双操作数指令一定是二地址指令吗？</a></span><span class="md-toc-item md-toc-h4" data-ref="n61"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n61">什么是访问储存器的方式？什么是寻址方式？常见的寻址方式有哪些？</a></span><span class="md-toc-item md-toc-h4" data-ref="n80"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n80">什么是大端序（大数端），什么是小端序（小数端）？如何区分小环移和大环移？</a></span><span class="md-toc-item md-toc-h2" data-ref="n84"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n84">第四章 运算器与运算方法</a></span><span class="md-toc-item md-toc-h4" data-ref="n86"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n86">什么是串行进位？什么是先行进位？</a></span><span class="md-toc-item md-toc-h4" data-ref="n93"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n93">什么是上溢和下溢？如何判断溢出？</a></span><span class="md-toc-item md-toc-h4" data-ref="n103"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n103">浮点加减法是如何实现的？</a></span><span class="md-toc-item md-toc-h4" data-ref="n116"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n116">原码一位乘法</a></span><span class="md-toc-item md-toc-h2" data-ref="n121"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n121">第五章 控制器</a></span><span class="md-toc-item md-toc-h4" data-ref="n123"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n123">关于PSW寄存器</a></span><span class="md-toc-item md-toc-h4" data-ref="n184"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n184">控制器中，哪些寄存器是用户可见的？哪些是用户不可见的？</a></span><span class="md-toc-item md-toc-h4" data-ref="n189"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n189">转移指令的基本原理？</a></span><span class="md-toc-item md-toc-h4" data-ref="n294"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n294">流水线的基本原理？</a></span><span class="md-toc-item md-toc-h2" data-ref="n301"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n301">第六章 存储系统</a></span><span class="md-toc-item md-toc-h4" data-ref="n305"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n305">什么是按字编址？什么是按字节编址？</a></span><span class="md-toc-item md-toc-h4" data-ref="n312"><a class="md-toc-inner" style="cursor: pointer;" href="#header-n312">按存取方式分类，有哪些存储器？分别有哪些特点？</a></span></p></div><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><h2><a name='header-n8' class='md-header-anchor '></a>第一章 绪论</h2><p>&nbsp;</p><h4><a name='header-n10' class='md-header-anchor '></a>哈佛结构和冯诺依曼结构有什么主要的不同？</h4><p>&nbsp;</p><p>冯·诺依曼结构<strong>将程序指令存储器和数据存储器合并在一起</strong>，指令存储地址和数据存储地址指向<strong>同一个存储器的不同物理位置</strong>。</p><p>使用冯·诺伊曼结构的中央处理器有很多。如Intel公司的80X86、ARM公司的ARM7、MIPS公司的MIPS等都采用了冯·诺伊曼结构。</p><p>而哈佛结构是一种<strong>将程序指令存储和数据存储分开的存储器结构</strong>。目前使用哈佛结构的中央处理器也有很多，如MOTOROLA公司的MC68系列、Zilog公司的Z8系列和ARM公司的ARM9、ARM10和ARM11等。</p><p>&nbsp;</p><h4><a name='header-n16' class='md-header-anchor '></a>计算机的总线有哪些分类</h4><p>&nbsp;</p><p><strong>系统总线、CPU内总线、外部总线（通信总线）</strong>。</p><p>其中，系统总线包含<strong>地址线、数据线和控制信号线</strong>，CPU内总线主要连接各寄存器和ALU，外部总线用于计算机系统之间通信。</p><p>数据总线为<strong>双向</strong>三态逻辑，线宽(位数)表示了总线数据传输的能力。</p><p>地址总线为<strong>单向</strong>三态逻辑，线宽决定了系统的寻址能力。</p><p>控制总线：用来传输控制或状态信号。它根据使用条件不同，<strong>有的为单向，有的为双向传输，有的是三态，有的是非三态</strong>。</p><p>&nbsp;</p><h4><a name='header-n24' class='md-header-anchor '></a>什么是计算机的位？什么是字长？</h4><p>&nbsp;</p><p>计算机的位一般指地址总线的宽度。</p><p>基本字长指计算机在同一时间中处理二进制数的位数，通常称为CPU的位。前者是寻址能力，后者是数据处理能力。而基本字长又决定了寄存器运算器和数据总线的位数。</p><p>&nbsp;</p><h4><a name='header-n29' class='md-header-anchor '></a>基数，基本符号，位权。</h4><p>&nbsp;</p><p>基本符号是一个进制允许用的符号。基数是所有基本符号的个数，通常，x进制，就说明x是这个进制的基数。位权是不同数位的权值。</p><p>&nbsp;</p><h2><a name='header-n33' class='md-header-anchor '></a>第二章 数据的表示</h2><p>&nbsp;</p><h4><a name='header-n35' class='md-header-anchor '></a>IEEE754浮点数表示中，指数偏移值是真值+127，而不是128，表示的范围为1~254.</h4><p>&nbsp;</p><p>单精度浮点数的指数域是8个bit，-128~127加上127之后范围变为-1~254。</p><p>对-128来说，补码为1000 000（注意不是0000000，因为-128没有反码！否则和0重复了）。加上127后为255（即E=255），如果此时同时M为0的话，表示为±∞（与符号位有关），而对于0，如果此时M为0，则真值为±0，如过此时E=255，M不为0时，则此时真值不是一个数，即NAN。</p><p>参考：<a href='https://blog.csdn.net/a7515780/article/details/60469155' target='_blank' class='url'>https://blog.csdn.net/a7515780/article/details/60469155</a></p><p><a href='https://baike.baidu.com/item/IEEE%20754/3869922?fromtitle=IEEE754%E6%A0%87%E5%87%86&fromid=10427270&fr=aladdin' target='_blank' class='url'>https://baike.baidu.com/item/IEEE%20754/3869922?fromtitle=IEEE754%E6%A0%87%E5%87%86&fromid=10427270&fr=aladdin</a></p><p>&nbsp;</p><h4><a name='header-n41' class='md-header-anchor '></a>什么是规约化浮点数，什么是非规约化浮点数？规约化浮点数的表示范围与精度取决什么？</h4><p>&nbsp;</p><p>如果浮点数中指数部分的编码值在0&lt;exponent&lt;2^e-2之间，且在科学表示法的表示方式下，分数 (fraction) 部分最高有效位（即整数字）是1，那么这个浮点数将被称为<strong>规约形式的浮点数</strong>。</p><p>“规约”是指用唯一确定的浮点形式去表示一个值。如果浮点数的指数部分的编码值是0，分数部分非零，那么这个浮点数将被称为<strong>非规约形式的浮点数</strong>。一般是某个数字相当接近零时才会使用非规约型式来表示。</p><p>IEEE 754标准规定：非规约形式的浮点数的指数偏移值比规约形式的浮点数的指数偏移值小1。采用浮点数表示时，表示范围取决于<strong>阶码</strong>的位数，精度取决于<strong>尾数</strong>的位数，<strong>数符</strong>决定浮点数的正负。</p><p>计算参考：<a href='https://blog.csdn.net/qq_29287973/article/details/78914821' target='_blank' class='url'>https://blog.csdn.net/qq_29287973/article/details/78914821</a></p><p>&nbsp;</p><h2><a name='header-n48' class='md-header-anchor '></a>第三章 指令系统</h2><p>&nbsp;</p><h4><a name='header-n50' class='md-header-anchor '></a>什么是机器字长？什么是指令字长？各有什么关系？</h4><p>&nbsp;</p><p>机器字长：CPU能直接处理的二进制数据的位数，一般是字节字长的整数倍。字长越长，运算精度就越高。</p><p>指令字长：指令字的长度取决于操作码的长度、操作数地址的长度和操作数地址的个数。这个是由指令格式决定的：指令由操作码OP+地址码AD构成。为了充分利用存储空间，指令字长也为字节字长的整数倍。
关系：<strong>没有固定的关系，可以等于，也可以大于小于</strong>。</p><p>&nbsp;</p><h4><a name='header-n55' class='md-header-anchor '></a>什么是单双字长指令？什么是单双操作数指令？双操作数指令一定是二地址指令吗？</h4><p>&nbsp;</p><p>单双字长指令，仅仅用于反应<strong>指令字长</strong>和<strong>机器字长</strong>之间的关系，量词反应指令字长对机器字长的倍数。执行完成后，指令地址要加上相应的倍数。</p><p>单双操作数指令。单操作数指令指的是由OP和目标地址构成的指令，而双操作数指令指的是由OP和源地址，目标地址构成的指令。与之平行的还有：转移指令、转子指令、子程序返回指令、条件码操作指令。</p><p>一地址指令还包括隐含操作数地址的指令，如双操作数指令，指定一寄存器（通常为累加寄存器），用来提供操作数并存放运算结果。
也就是说，n地址指令只<strong>包含</strong>n个操作数，但不一定只<strong>处理</strong>n个操作数。 </p><p>&nbsp;</p><h4><a name='header-n61' class='md-header-anchor '></a>什么是访问储存器的方式？什么是寻址方式？常见的寻址方式有哪些？</h4><p>&nbsp;</p><p>访问储存器的方式有以下三种：</p><p><strong>1.地址指定方式 2.相连存储方式 3.堆栈存取方式</strong></p><p>几乎所有的计算机，在主存中都采用地址指定方式。</p><p>寻址方式：当采用<strong>地址指定方式</strong>，形成操作数或指令地址，叫做寻址方式。</p><p>寻址方式主要分为<strong>指令寻址</strong>方式和<strong>数据寻址</strong>方式 。</p><p>指令寻址方式分为：<strong>顺序寻址</strong>方式和<strong>转移寻址</strong>方式。</p><p>顺序寻址方式必须用程序计数器PC来记数指令的顺序号，转移寻址方式的实质是改变这一顺序号，即改变PC的值，当程序转移后，将按新的指令地址继续顺序执行。</p><p>对操作数寻址来说，分为：</p><p>1.<strong>立即寻址方式</strong><span>	</span>直接给出操作数<span>	</span>缺陷：操作数包含在指令内，数值长度受到限制。</p><p>2.<strong>直接寻址（绝对寻址）</strong><span>	</span>直接给出存有操作数的存储器地址<span>	</span>缺点：绝对地址不能修改。当给出的是寄存器号时，此时称为寄存器直接寻址。</p><p>3.<strong>间接寻址</strong><span>	</span>给出存有操作数地址的储存单元的地址。<span>	</span>特点：支持程序循环，但两次访存，速度较慢。<span>	</span>当给出的是存有操作数地址的寄存器号时，此时称为寄存器间接寻址。此时一次访存，速度更快。</p><p>4.<strong>变址寻址</strong><span>		</span>给出变址寄存器号和基地址，操作数的<strong>地址</strong>为寄存器内容与基地址的和。</p><p>5.<strong>基址寻址</strong><span>	</span>1.把整个存储空间分为若干段，每段的首地址存在一个基址寄存器中，指令直接给出段内的位移量2.由于程序运行的局部性，位移量位数不必全字长。基址寄存器的位数应该与主存空间相等，位移量位数应该和段长度相等。</p><p>6.<strong>相对寻址</strong><span>	</span>把程序计数器PC的内容加上指令格式中的形式地址D，形成操作数的有效地址。<span>	</span>特点：用来实现分支、循环。</p><p>7.<strong>堆栈寻址</strong><span>	</span>对串联堆栈（硬堆栈）来说，这是用寄存器做成的堆栈，压栈弹栈均由硬件支持，直接取出或压入寄存器，此时栈顶固定，不需要堆栈指针，速度比较快，长度受寄存器数目的限制，弹栈为破坏性弹栈。对存储器堆栈（软堆栈）来说，此时堆栈是利用一部分主存区域，此时长度灵活。但数据不能像硬堆栈一样从一个单元直接移动到另一个单元。而是采用移动堆栈顶部的方法，设置一个栈针<strong>SP</strong>来指示栈顶的移动情况。</p><p>&nbsp;</p><h4><a name='header-n80' class='md-header-anchor '></a>什么是大端序（大数端），什么是小端序（小数端）？如何区分小环移和大环移？</h4><p>&nbsp;</p><p>大端序：数据的最低<strong>字节</strong>存储在<strong>高地址</strong>。</p><p>小端序：数据的最低<strong>字节</strong>存储在<strong>低地址</strong>。</p><p>常见的大端序：网络字节序</p><p>小环移左移：C标志和最低位都接受最高位</p><p>大环移左移：最低位接受C标志，C标志接受最高位</p><p>&nbsp;</p><h2><a name='header-n84' class='md-header-anchor '></a>第四章 运算器与运算方法</h2><p>&nbsp;</p><h4><a name='header-n86' class='md-header-anchor '></a>什么是串行进位？什么是先行进位？</h4><p>&nbsp;</p><p>串行进位必须等到地位加法做完，才能等到送来的进位，而先行（并行）进位可以把进位信号同时送到各位全加器的进位输入端。</p><p>以四位先行加法器为例子。C1 = X1Y1 + (X1+Y1)C0。定义 Pi = Xi+Yi为进位传递函数，定义 Gi = XiYi 为进位产生函数。</p><p>则四位先行(快速)进位链的逻辑表达式为：</p><p>C1 = G1 + P1C0</p><p>C2 = G2 + P2C1 = G2 + P2G1 + P2P1C0</p><p>C3 = G3 + P3C2 = G3 + P3G2 + P3P2G1 + P3P2P1C0</p><p>C4 = G4 + P4C3 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1C0</p><p>&nbsp;</p><p>&nbsp;</p><h4><a name='header-n93' class='md-header-anchor '></a>什么是上溢和下溢？如何判断溢出？</h4><p>&nbsp;</p><p>上溢指运算结果超过了允许的最大正数，下溢指结果超过了允许的最小负数。常用的溢出判别法有：</p><p>1.进位判别法</p><p>两个<strong>补码</strong>做加法运算，最高数值位向符号位的进位C，与符号位产生的进位输出Cs，不相同的时候溢出。</p><p>2.单符号法</p><p>溢出只发生在同号数，当同号数相加，运算结果与原来的符号相反，一定产生了溢出。</p><p>3.双符号法</p><p>数符用两个相同的符号位表示，正数的双符号位为00，负数为11。
两个正数符号位的运算为00+00=00时,结果不溢出;
两个正数符号位的运算为00+00+1=01时,结果上溢;
两个负数符号位运算为11+11+1 = 11时，结果不溢出;
两个负数的双符号位的运算为11+11 = 10时，结果下溢。
OVR = S1 xor S2 ，此时不仅能指示溢出，S1还始终能指示结果的正负。</p><p>&nbsp;</p><h4><a name='header-n103' class='md-header-anchor '></a>浮点加减法是如何实现的？</h4><p>&nbsp;</p><p>浮点加减法分为5个步骤：</p><p><strong>第1步：对阶，调整尾数</strong></p><p>阶码的比较通过两阶码的减法来实现，对阶是使原数中<strong>较大</strong>的阶码成为两数的公共阶码。
注意事项：尾数右移时，分两种情况：1.原码形式：符号位不参与移位，空出位补0；2.补码形式：符号位与数值位一同右移，空出位填补符号位的值。</p><p><strong>第2步：尾数加减</strong></p><p><strong>第3步：尾数规格化</strong></p><p>当浮点数的尾数用补码表示，加减运算采用双符号位，则规格化形式的尾数应如下格式：
尾数为正数：001x……x
尾数为负数：110x……x
规格化方法有两种，分为<strong>左规</strong>和<strong>右规</strong>。
尾数右移一位，阶码加一，称为<strong>右规</strong>。当尾数在加减法运算中产生溢出的时候，采用右规的方法。
符号位不动，数值位逐次左移，阶码逐次减1，直到满足规格化形式的尾数，即最高数值位与符号位不同值为止的方法，称为<strong>左规</strong>。当尾数的绝对值小于二进制的0.1时采用，此时补码形式的尾数表现为最高数值位与符号位同值。</p><p><strong>第4步：尾数的舍入处理</strong></p><p>① 0舍1入法
② 恒置1法
③ 恒舍法</p><p><strong>第5步：阶码溢出判断</strong> </p><p>一个浮点运算器主要由两个定点运算器组成，分别为阶码运算部件，尾数运算部件。阶码运算部件只需实现加减，而尾数运算部件需要实现加减乘除、移位、规格化判断。</p><p>&nbsp;</p><h4><a name='header-n116' class='md-header-anchor '></a>原码一位乘法</h4><p>&nbsp;</p><p>来由：手算乘法的方法中，需要对多个数据同时相加，且得到的结果长度往往是原数据的两倍，在计算机的实现中，这很难做到。于是采用原码一位乘法，把n位乘转化为n次“累加和移位”。</p><p><img src='C:\Users\Curled\Desktop\计组迷茫点\图片1.png' alt='逻辑电路框图' referrerPolicy='no-referrer' /></p><p>&nbsp;</p><h2><a name='header-n121' class='md-header-anchor '></a>第五章 控制器</h2><p>&nbsp;</p><h4><a name='header-n123' class='md-header-anchor '></a><span id = "psw">关于PSW寄存器</span></h4><p>&nbsp;</p><p>状态标志寄存器，FLAG（全称：EFLAGS Register），又称程序状态寄存器（它的内容是Program Status Word，PSW），主要用于反映处理器的状态和ALU运算结果的某些特征及控制指令的执行。</p><figure><table><thead><tr><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th><th>OF</th><th>DF</th><th>IF</th><th>TF</th><th>SF</th><th>ZF</th><th>&nbsp;</th><th>AF</th><th>&nbsp;</th><th>PF</th><th>&nbsp;</th><th>CF</th></tr></thead><tbody><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table></figure><p>6个状态标志位为：</p><ul><li>进位标志位（CF）：</li><li>辅助进位标志位（AF）；</li><li>溢出标志位（OF）：</li><li>零标志位（ZF）；</li><li>符号标志位（SF）；</li><li>校验标志位（PF）；</li></ul><p>3个控制标志为：</p><ul><li>方向标志（DF），表示串操作指令中字符串操作的方向。</li><li>中断允许标志位（IF），表示CPU是否能够相应外部的可屏蔽中断请求。</li><li>陷阱标志位（TF），为了方便程序的调试，使处理器的执行进入单步方式而设置的控制标志位。</li></ul><p>&nbsp;</p><h4><a name='header-n184' class='md-header-anchor '></a>控制器中，哪些寄存器是用户可见的？哪些是用户不可见的？</h4><p>&nbsp;</p><p>对<strong>用作处理的寄存器</strong>来说，所有的通用寄存器组都是用户可见的，都可以编程访问，可以存放操作数和操作数地址。</p><p>对<strong>用于控制的寄存器</strong>来说，指令寄存器IR是不可见的，用于存放现行指令，以及输出用于产生控制信号的序列。程序计数器PC是可见的，提供读取指令的地址，又叫指令指针IP。程序状态字寄存器是用户可见的，内容表示现行程序的状态，具体见<a href='#psw'>关于PSW寄存器</a>。</p><p>&nbsp;</p><h4><a name='header-n189' class='md-header-anchor '></a>转移指令的基本原理？</h4><p>&nbsp;</p><p>无条件转移指令：又称必转，不受任何条件的约束，直接把程序指向新的位置并执行，一般为JMP</p><p>条件转移：必须受到条件的约束，条件由某些标志位或这些标志位的逻辑运算为依据，单个标志位的条件转移指令的转移条件是上次运算结果的某些标志，如进位、零标志、结果溢出标志等。</p><p>根据单个标志位的状态判断转移的指令（DEST为目的地址destination的缩写）</p><figure><table><thead><tr><th>指令</th><th>转移条件</th><th>说明</th></tr></thead><tbody><tr><td><strong>JC DEST</strong></td><td><strong>CF=1</strong></td><td><strong>有进位/借位</strong></td></tr><tr><td><strong>JNC DEST</strong></td><td><strong>CF=0</strong></td><td><strong>无进位/借位</strong></td></tr><tr><td><strong>JE/JZ DEST</strong></td><td><strong>ZF=1</strong></td><td><strong>相等/等于零</strong></td></tr><tr><td><strong>JNE/JNZ DEST</strong></td><td><strong>ZF=0</strong></td><td><strong>不相等/不等于零</strong></td></tr><tr><td><strong>JS DEST</strong></td><td><strong>SF=1</strong></td><td><strong>是负数</strong></td></tr><tr><td><strong>JNS DEST</strong></td><td><strong>SF=0</strong></td><td><strong>是正数</strong></td></tr><tr><td><strong>JO DEST</strong></td><td><strong>OF=1</strong></td><td><strong>有溢出</strong></td></tr><tr><td><strong>JNO DEST</strong></td><td><strong>OF=0</strong></td><td><strong>无溢出</strong></td></tr><tr><td><strong>JP/JPE DEST</strong></td><td><strong>PF=1</strong></td><td><strong>有偶数个“1”</strong></td></tr><tr><td><strong>JNP/JPO DEST</strong></td><td><strong>PF=0</strong></td><td><strong>有奇数个“1”</strong></td></tr></tbody></table></figure><p>根据两个无符号数的比较结果判断转移的指令</p><figure><table><thead><tr><th>指令</th><th>转移条件</th><th>含义</th><th>英文表述</th></tr></thead><tbody><tr><td>JA/JNBE DEST</td><td>CF=0 AND ZF=0</td><td>无符号数A&gt;B</td><td>JMP above (not below or equal)</td></tr><tr><td>JAE/JNB DEST</td><td>CF=0</td><td>无符号数A≥B</td><td>JMP above or equal (not below )</td></tr><tr><td>JB/JNAE DEST</td><td>CF=1</td><td>无符号数A&lt;B</td><td>JMP blow (not above or equal)</td></tr><tr><td>JBE/JNA DEST</td><td>CF=1 OR ZF=1</td><td>无符号数A≤B</td><td>JMP blow or equal (not above)</td></tr></tbody></table></figure><p>根据两个有符号数的比较结果判断转移的指令</p><figure><table><thead><tr><th>指令</th><th>转移条件</th><th>含义</th><th>英文表述</th></tr></thead><tbody><tr><td>JG/JNLE DEST</td><td>SF=OF AND ZF=0</td><td>有符号数A&gt;B</td><td>JMP greater (not less or equal)</td></tr><tr><td>JGE/JNL DEST</td><td>SF=OF OR ZF=1</td><td>有符号数A≥B</td><td>JMP greater or equal (not less)</td></tr><tr><td>JL/JNGE DEST</td><td>SF≠OF AND ZF=0</td><td>有符号数A&lt;B</td><td>JMP less (not greater or equal)</td></tr><tr><td>JLE/JNG DEST</td><td>SF≠OF OR ZF=1</td><td>有符号数A≤B</td><td>JMP less or equal (not greater)</td></tr></tbody></table></figure><p>&nbsp;</p><h4><a name='header-n294' class='md-header-anchor '></a>流水线的基本原理？</h4><p>串行执行指令 ：没有充分利用执行部件的并行性，指令执行效率低。
流水线方式执行指令：多条指令的执行相互重叠起来，提高CPU执行指令的效率。</p><p>一条指令的执行可被分成若干个阶段：
取指令(IF) ：根据PC值从存储器取出指令。
指令译码(ID) ：产生指令执行所需的控制信号。
取操作数(OF) ：读取存储器操作数或寄存器操作数。
执行(EX) ：对操作数完成指定操作。
写回(WB) ：将操作结果写入存储器或寄存器。</p><p>一个x段指令的流水线，完成y条指令。
流水执行，需要x+y-1个周期。
串行执行，需要x*y个周期</p><p>流水线方式并不能缩短单条指令的执行时间，但提高了指令的吞吐率。
流水段个数：最复杂指令的功能段个数。
流水段长度：最复杂功能段的操作所用的时间。</p><p>&nbsp;</p><h2><a name='header-n301' class='md-header-anchor '></a>第六章 存储系统</h2><p>&nbsp;</p><p>&nbsp;</p><h4><a name='header-n305' class='md-header-anchor '></a>什么是按字编址？什么是按字节编址？</h4><p>&nbsp;</p><p>首先，我们要知道什么是编址。</p><p>百度百科的定义是，编址：存储器是由一个个存储单元构成的，为了对存储器进行有效的管理，就需要对各个存储单元编上号，即给每个单元赋予一个地址码，这叫编址。经编址后，存储器在逻辑上便形成一个线性地址空间。</p><p>所以两种编址方式，一种是以字长为一个单元进行编址，一种是以字节为一个单元进行编址。所以主存的地址空间（可以理解为容量），在计算的时候，我们要先计算出单元的数量（容量除以每个单元的容量），所得即为寻址范围的大小x，而寻址范围为区间0~x-1。</p><p>参考：<a href='https://blog.csdn.net/u012468263/article/details/77920234' target='_blank' class='url'>https://blog.csdn.net/u012468263/article/details/77920234</a></p><p>&nbsp;</p><h4><a name='header-n312' class='md-header-anchor '></a>按存取方式分类，有哪些存储器？分别有哪些特点？</h4><p>&nbsp;</p><p><strong>随机访问：存取时间与物理地址无关</strong></p><p><strong><em>随机存储</em></strong>器（R\W）（RAM）
CPU和I/O设备在任意时刻都可按地址随机访问任一存储单元。访问各单元读写时间相同，与地址无关。
半导体存储器一般属于RAM存储器，主存与cache采用随机访问的存取方式，CPU可直接编程访问。分为SRAM\DRAM两种。</p><p><strong><em>只读存储</em></strong>器（R） （ROM）
只能读出不能写入。
应用：BIOS、CPU用ROM固化微程序。用ROM做辅存：CD-ROM。</p><p><strong>串行访问：存取时间与 物理地址有关</strong></p><p><strong><em>顺序存取</em></strong>存储器 磁带 （SAM）
特点：信息只能按某种顺序存放或读出，存取时间取决于信息的存放位置。
存储容量大；每位价格低；存取速度慢。仅适用于外存。</p><p><strong><em>直接存取</em></strong>存储器 磁盘 （DAM）
先选择信息的较小局部区域，然后再顺序存取。
容量大，速度介于SAM和RAM之间，主要用于辅存。</p></div>
</body>
</html>